from moviepy.editor import VideoFileClip

def convert_video_format(input_path, output_path):
    """
    使用 moviepy 将视频从一种格式转换为另一种格式。

    :param input_path: 输入视频文件的路径。
    :param output_path: 输出视频文件的路径。
    """
    try:
        # 1. 加载视频文件
        # VideoFileClip 会自动检测输入文件的格式
        clip = VideoFileClip(input_path)

        # 2. 写入视频文件
        # 通过指定不同的输出文件扩展名（如 .mp4, .avi, .mov, .mkv）来实现格式转换
        # moviepy 会根据扩展名自动选择合适的编码器
        clip.write_videofile(output_path)

        print(f"视频转换成功！输出文件已保存至: {output_path}")

    except Exception as e:
        print(f"视频转换失败: {e}")


# --- 示例用法 ---
if __name__ == "__main__":
    input_video = 'input/sample_1.mp4'
    output_video = 'output/sample_out_1.mp4'
    convert_video_format(input_video, output_video)

    # 你也可以尝试转换为其他格式
    # convert_video_format("input.mp4", "output.mkv")
    # convert_video_format("input.mp4", "output.avi")